package com.ddxz.hetong.service;

import com.ddxz.tool.web.dto.DdxzResponse;

/**
 * 业务逻辑层和前端交互层的接口
 *
 * @author 朱宗刚
 * @version 1.0.0
 * @date 2022/7/7
 */

public interface HeTongService {
    /**
     * 获取所有合同的总额
     * @param type 合同类型
     * @return 合同总额
     */
    DdxzResponse getTotalMoney(Integer type);

    /**
     * 获取贷款结构列表
     *
     * @param status 状态信息
     * @param deptName 单位名称
     * @param year 年份信息
     * @param pageSize 页面大小
     * @param pageNum 页码
     * @return 贷款机构列表
     */
    DdxzResponse getDeptList(Integer status, String deptName, Integer year, Integer pageSize, Integer pageNum);

    /**
     * 获取单位的发放比例
     * @param type 预留
     * @return 贷款结构的发放比例
     */
    DdxzResponse getDaptPercent(Integer type);

    /**
     * 获取单位/合同列表信息
     * @param status 控制状态
     * @param deptName 单位名称
     * @param protoName 合同名称
     * @param pageSize 页面大小
     * @param pageNum 页面
     * @return 列表
     */
    DdxzResponse getDeviceDeptList(Integer status, String deptName, String protoName, Integer pageSize, Integer pageNum);

    /**
     * 获取工程/合同的统计数据或详情数据
     * @param status 控制状态
     * @param deptName 单位名称
     * @param protoName
     * @param year 年份
     * @param month 月份
     * @param pageNum 页码
     * @param pageSize 页面大小
     * @return 列表
     */
    DdxzResponse getProjectList(Integer status, String deptName, String protoName, Integer year, String month, Integer pageNum, Integer pageSize);

    /**
     * 根据进度，获取付款详情
     * @param status 控制状态
     * @param pageNum 页码
     * @param pageSize 页面大小
     * @return 列表
     */
    DdxzResponse getDevicePercentDetail(Integer status, Integer pageNum, Integer pageSize);

    /**
     * 获取不同进度下的合同数
     * @return 列表
     */
    DdxzResponse getDevicePercentList();

    /**
     * 获取设备类各种合同的统计指标
     * @return 列表
     * @param pageNum 页码
     * @param pageSize 页面大小
     */
    DdxzResponse getDeviceProtoList(Integer pageNum, Integer pageSize);
}
